

<template>
<div>
     <!-- <Button type="primary" @click="modal1 = true">Display dialog box</Button> -->
     <Modal v-model="mode" width="50%"  title="添加场地" @change="testChange"  @on-cancel="cancel">
         <Row>
          <Form ref="UserData"  :model="UserData"  :rules="ruleInUser" :label-width="100">
                <div style="width:100%;height:auto;margin:0 auto;">
                     
                    <i-col span="12"> 
                      <FormItem label="场地名称：" prop="UserName">
                        <Input v-model="UserData.UserName"  placeholder="请输入场地"/>
                      </FormItem>                     
                    </i-col>
                    <i-col span="24">
                        <FormItem label="备注：" prop="Remark">
                            <label slot="label">备&nbsp;&nbsp;&nbsp;&nbsp;注：</label>
                            <Input v-model="UserData.Remark" style="width:500px;" type="textarea" :autosize="{minRows: 2,maxRows: 5}" placeholder="请说明备注事项..."></Input>
                         </FormItem>
                    </i-col>
                    
                    <Col span="24">
                        <FormItem>
                            <Button type="primary" :loading="loading"  @click="handleSubmit('UserData')">提交</Button>
                            <!-- <Button @click="handleReset('formValidate')" style="margin-left: 8px">重置</Button> -->
                         </FormItem>
                   </Col>
                   
                </div>
              </Form>
        </Row>

        
        <div slot="footer" >
          <!--
             <Button type="error" size="large" long :loading="modal_loading" @click="del">Delete</Button> 
           -->
        </div>
       
    </Modal>
</div>
</template>

<script>
import {getCompanyList,getDeptList,getUserlist,createUserData,getVehlist,subOrderData} from "@/api/data";
import { formatDate } from '../../components/date.js';
export default {
    name: 'UserAdd',
    data () {
        return {
          loading:false,
          mode:this.add,
          
          //表单验证规则
          ruleInUser: {
            UserName: [
              { required: true, message: '请填写用户名', trigger: 'blur' }
            ],

            RealName: [
              { required: true, message: '请填写真实姓名', trigger: 'blur' }
            ],

            Sex: [
              { required: true, type:"number", message: '请选择性别', trigger: 'change' }
            ],
                 
            Age: [
              { required: true, type:"number",message: '请输入年龄', trigger: 'blur' },
              { pattern: /^(?:[1-9][0-9]?|1[01][0-9]|120)$/, message: '请输入年龄1-120', trigger: 'blur' }
            ],

            Qq: [
              { pattern: /^[1-9][0-9]{4,}$/, message: '请输入正确的QQ号码', trigger: 'blur' }
            ],

            Email: [
              { pattern: /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$$/, message: '邮箱格式不正确', trigger: 'blur' }
            ],

            Company: [
              { required: true, type:"number", message: '请选择公司', trigger: 'change' }
            ],

            Dept: [
              { required: true, type:"number",message: '请选择部门', trigger: 'change' }
            ],


          },

          SexList:[
           
            {
              Sex:0,
              SexName:'男'
            },
            {
              Sex:1,
              SexName:'女'
            }
          ],

          DeptList:[
            {
              Id:1,
              DeptName:'研发部'
            },
            {
              Id:2,
              DeptName:'技术部'
            }
          ],
          CompanyList:[
            {
              Id:1,
              CompanyName:'奎木星'
            },
            {
              Id:2,
              CompanyName:'望远'
            }
          ],

           
          listdata:[]

        };
    },
    props:{
        add:{
            type:Boolean ,
            required:true
        },
        UserData:{
            type:Object,
            required:true 
        },
        

    },
    methods: {
      testChange(val){
        this.$emit('testChange',val);
       },
      cancel(){
          this.loading = false; 
          let data = {
            mode:false
          }
          this.$emit('cancelCallBack', data);
       },
      //提交编辑后的userInfo
      handleSubmit(name) {
        
        this.$refs[name].validate(valid => { 
          console.log("提交验证：",valid)    
          if (valid) { 
            this.loading = true;       
            this.submit();
          } else {
            this.$Message.error("请填写相关信息!");
          }
        });
      },
    submit(){
        const data = {
            UserName: this.UserData.UserName,
            Password: "123456",
            RealName: this.UserData.RealName,
            Sex: this.UserData.Sex,
            Age: this.UserData.Age,
            Wx: this.UserData.Wx,
            Qq: this.UserData.Qq,
            Email: this.UserData.Email,
            Company: this.UserData.Company,
            Dept: this.UserData.Dept
        };
      createUserData(data).then(res =>{
            if(res !== null){
              this.$Message.success("提交成功");
              this.loading = false; 
              let data = {
                mode:false
              }
              this.$emit('success', data);   
            }else if(response.data.flag == 0){
            this.$Message.success("提交失败"); 
            }else if(response.data.flag == 2){
            this.$Message.success("状态过期");
            }
        }).catch(error => {
            this.$Message.error("请核对之后重新提交");
             this.loading = false; 
       });


     },
    },
    mounted () {
        const cmpdata = {
        fields:"Id,CompanyName",
        offset:"0",
        limit:"-1"
      };
      const dptdata = {
        fields:"Id,DeptName",
        offset:"0",
        limit:"-1"
      };
      //获得包含公司Id和companyname字段的全部列表
      getCompanyList(cmpdata).then(res =>{
        this.CompanyList = res.List;
        
      });
      //获得包含公司Id和companyname字段的全部列表
      getDeptList(dptdata).then(res =>{
        this.DeptList = res.List;
      });
    },
    watch: {
        add(val) {
        this.mode = val
    }
}
}
</script>
<style>
.dept .ivu-select-placeholder{
color:#515a6e!important;
}
</style>